﻿using System;
using System.Collections.Generic;
using System.Text;
using System.Drawing;
using Newtonsoft.Json;
using TamoCRM.Domain.CallHistories;


namespace TamoCRM.Call
{
    public class HelpUtils
    {
        /// <summary>
        /// Hàm này thực hiện việc call contact; trả về thông tin cuộc gọi: call_id, error code
        /// </summary>
        /// <param name="ip_str_dien_thoai">Gọi đến số điện thoại nào</param>
        /// <param name="ip_str_stationId">Dùng mã máy nào để gọi</param>
        /// <param name="ip_str_agencode">Agencode gọi. Thường dùng là username của người gọi</param>
        /// <returns>Đối tượng lưu thông tin cuộc gọi vừa tạo. 
        /// Call_Id đc dùng để lấy lại thông tin sau khi gọi xong. 
        /// Kiểm tra error_code để biết cuộc gọi có lỗi hay ko?(=1 là lỗi)</returns>
        public static CallInfor Call(string ip_str_dien_thoai, string ip_str_stationId, string ip_str_agencode)
        {
            
            const string v_str_message_code = "003";
            var v_dat_datetime_request = DateTime.Now.ToLongTimeString();
            if (!ip_str_dien_thoai.StartsWith("0")) ip_str_dien_thoai = "0" + ip_str_dien_thoai;
            var v_str_input_string = "<agent_code>" + ip_str_agencode + "</agent_code>"
                                        + "<mobile_phone>" + ip_str_dien_thoai + "</mobile_phone>"
                                        + "<station_id>" + ip_str_stationId + "</station_id>"
                                        + "<datetime_request>" + v_dat_datetime_request + "</datetime_request>"
                                        + "<message_code>" + v_str_message_code + "</message_code>";

            //WSCallCenter.CallCenterService m_ws_call = new WSCallCenter.CallCenterService();
            var ws = new WsCallCenterService.CallCenterClient("CallCenter");
            var v_str_result = "";
            //v_str_result = m_ws_call.submit(v_str_input_string);
            v_str_result = ws.submit(v_str_input_string);
            var v_obj_infor = JsonConvert.DeserializeObject<CLichSuCuocGoi>(v_str_result);

            return v_obj_infor.data;
        }

        /// <summary>
        /// Hàm này dùng để get thông tin về cuộc gọi
        /// </summary>
        /// <param name="ip_call_id">Call id dùng để get thông tin cuộc gọi</param>
        /// <param name="ip_str_dien_thoai">Số điện thọai vừa gọi</param>
        /// <param name="ip_str_stationId">station id vừa call</param>
        /// <param name="ip_str_agencode">Agen code thường để là username</param>
        /// <returns>Đối tượng lưu toàn bộ thông tin cuộc gọi.
        /// Kiểm tra error_code để biết cuộc gọi có lỗi hay ko? (=1 là lỗi)</returns>
        public static CallInfor GetCall(string ip_call_id, string ip_str_dien_thoai, string ip_str_stationId, string ip_str_agencode)
        {
            const string v_str_message_code = "004";
            var v_dat_datetime_request = DateTime.Now.ToLongTimeString();
            if (!ip_str_dien_thoai.StartsWith("0")) ip_str_dien_thoai = "0" + ip_str_dien_thoai;

            var v_str_input_string = "<agent_code>" + ip_str_agencode + "</agent_code>"
                                        + "<mobile_phone>" + ip_str_dien_thoai + "</mobile_phone>"
                                        + "<station_id>" + ip_str_stationId + "</station_id>"
                                        + "<datetime_request>" + v_dat_datetime_request + "</datetime_request>"
                                        + "<message_code>" + v_str_message_code + "</message_code>"
                                        + "<call_id>" + ip_call_id + "</call_id>";

            //WSCallCenter.CallCenterService m_ws_call = new WSCallCenter.CallCenterService();
            var ws = new WsCallCenterService.CallCenterClient("CallCenter");
            var v_str_result = "";
            //v_str_result = m_ws_call.submit(v_str_input_string);
            v_str_result = ws.submit(v_str_input_string);
            var v_obj_infor = JsonConvert.DeserializeObject<CLichSuCuocGoi>(v_str_result);

            return v_obj_infor.data;
        }
    }
}
